Principales Objetivos de la Ingeniería del Software
Según Pressman (2010) y Weitzenfeld (2005), los objetivos primordiales de la Ingeniería del Software son:
Mejorar la calidad del software | Aumentar la Productividad de los Desarrolladores | Reducir los Costos de Desarrollo y Mantenimiento | Gestionar la Complejidad del Software | Cumplir los Plazos y Presupuestos |
---|---|---|---|---|
Implica desarrollar software que sea confiable, eficiente, mantenible y que cumpla con los requisitos del cliente. La calidad no solo se refiere a la ausencia de errores, sino también a la facilidad de uso, la seguridad y el rendimiento. | Se busca optimizar el proceso de desarrollo para que los ingenieros puedan producir más software en menos tiempo, sin comprometer la calidad. Esto se logra mediante el uso de herramientas, técnicas y metodologías eficientes. | Minimizar los gastos asociados con el desarrollo y el mantenimiento del software a lo largo de su ciclo de vida. Esto se logra mediante una planificación cuidadosa, una gestión eficiente de los recursos y la adopción de prácticas de desarrollo sólidas. | El software moderno puede ser extremadamente complejo, con millones de líneas de código y numerosas interdependencias. La Ingeniería del Software proporciona técnicas y herramientas para descomponer problemas complejos en partes más manejables y para gestionar la interacción entre estas partes. | Es fundamental entregar el software a tiempo y dentro del presupuesto asignado. Esto requiere una planificación cuidadosa, una gestión eficiente de los riesgos y un seguimiento constante del progreso del proyecto. |
Implementar pruebas exhaustivas y revisiones de código para garantizar que el software funcione correctamente y cumpla con los estándares de calidad. | Utilizar un entorno de desarrollo integrado (IDE) que automatice tareas comunes y facilite la depuración del código. | Realizar un análisis exhaustivo de los requisitos al inicio del proyecto para evitar cambios costosos en etapas posteriores. | Utilizar una arquitectura de software modular que permita dividir el sistema en componentes independientes y reutilizables. | Utilizar una metodología ágil que permita adaptarse a los cambios en los requisitos y entregar versiones funcionales del software de forma iterativa. |